<?php

defined("_JEXEC") or die("Acesso Restrito");

Class SgrhFrontControllerCandidato extends SgrhFrontController {

	function salvarDadosPessoais() {
		$dados = JRequest::get('post');
		
		$arquivo = JRequest::getVar('arquivo', null, 'FILES');
		$dados['dataNascimento'] = implode('-', array_reverse(explode('/', $dados['dataNascimento'])));
		$modelo = & $this->getModel('candidato');
		if($modelo->verificaCPF($dados['username']) || !array_key_exists("username", $dados)){
			if ($dados[idUser] == null)
				$dados['idUser'] = $modelo->registrarUsuario($dados);
			if (count($modelo->_errors) == 0) {
				$dados['arquivo'] = $modelo->gravaArquivo($arquivo, $dados['username']);
				if (count($modelo->_errors) == 0) {
					$pessoa = $modelo->salvar($dados, 'pessoa');
					if (count($modelo->_errors) == 0) {
						$msg = "Cadastro de dados pessoais realizados com sucesso";
						Jrequest::setVar('tpl', 'endereco');
						JRequest::setVar('view', 'candidato');
						JRequest::setVar('idPessoa', $pessoa->id);
						JError::raiseNotice(100, $msg);
						parent::display();
					}
				}
			}
		}	
		if (count($modelo->_errors) > 0) {
			JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
			JRequest::setVar('dados', $dados);
			JRequest::setVar('view', 'candidato');
			parent::display();
		}
		//Se a pessoa já existir salva as alterações enviando a tabela e os novos dados
		if ($idPessoa != null) {
			$modelo->alteraDados($tabela, $idPessoa, $dados);
		}
	}

	function salvarEndereco() {
		$dados = JRequest::get('post');
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'endereco');
		if (count($modelo->_errors) == 0) {
			$msg = "Cadastro de dados pessoais realizados com sucesso";
			Jrequest::setVar('tpl', 'contato');
			JRequest::setVar('view', 'candidato');
			JError::raiseNotice(100, $msg);
			parent::display();
		} else {
			JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
			JRequest::setVar('dados', $dados);
			Jrequest::setVar('tpl', 'endereco');
			JRequest::setVar('view', 'candidato');
			parent::display();
		}
	}

	function salvarContatos() {
		$dados = JRequest::get('post');
		if ($dados['telefone'] != "") {
			$modelo = & $this->getModel('candidato');
			$modelo->salvar($dados, 'contato');
			if (count($modelo->_errors) == 0) {
				$msg = "Cadastro de dados pessoais realizados com sucesso";
				Jrequest::setVar('tpl', 'documento');
				JRequest::setVar('view', 'candidato');
				JError::raiseNotice(100, $msg);
				parent::display();
			} else {
				JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
				JRequest::setVar('dados', $dados);
				JRequest::setVar('view', 'candidato');
				parent::display();
			}
		} else {
			Jrequest::setVar('tpl', 'documento');
			JRequest::setVar('view', 'candidato');
			parent::display();
		}
	}

	function salvarDocuemntos() {
		$dados = JRequest::get('post');
		$arquivo = JRequest::getVar('arquivo', null, 'FILES');
		$dados['dataEmissao'] = implode('-', array_reverse(explode('/', $dados['dataEmissao'])));
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'documento');
		if (count($modelo->_errors) == 0) {
			$msg = "Cadastro de dados pessoais realizados com sucesso";
			Jrequest::setVar('tpl', 'escolaridade');
			JRequest::setVar('view', 'candidato');
			JError::raiseNotice(100, $msg);
			parent::display();
		} else {
			JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
			JRequest::setVar('dados', $dados);
			JRequest::setVar('view', 'candidato');
			parent::display();
		}
	}

	function salvarEscolaridade() {
		$dados = JRequest::get('post');
		if ($dados['idEscolaridade'] != "" && $dados['instituicao'] != "" && $dados['curso'] != "" && $dados['inicio'] != "" && $dados['fim'] != "" && $dados['horario'] != "") {
			$modelo = & $this->getModel('candidato');
			$modelo->salvar($dados, 'endereco');
			if (count($modelo->_errors) == 0) {
				$msg = "Cadastro de dados pessoais realizados com sucesso";
				Jrequest::setVar('tpl', 'curso');
				JRequest::setVar('view', 'candidato');
				JError::raiseNotice(100, $msg);
				parent::display();
			} else {
				JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
				JRequest::setVar('dados', $dados);
				JRequest::setVar('view', 'candidato');
				parent::display();
			}
		} else {
			Jrequest::setVar('tpl', 'curso');
			JRequest::setVar('view', 'candidato');
			JError::raiseNotice(100, $msg);
			parent::display();
		}
	}

	function salvarCursos() {
		$dados = JRequest::get('post');
		$arquivo = JRequest::getVar('arquivo', null, 'FILES');
		$modelo = & $this->getModel('candidato');
		Jrequest::setVar('tpl', 'emprego');
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function salvarEmpregos() {
		$dados = JRequest::get('post');
		$arquivo = JRequest::getVar('arquivo', null, 'FILES');
		$modelo = & $this->getModel('candidato');
		$msg = "Cadastro de dados pessoais realizados com sucesso";
		$idPessoa = JRequest::getVar('idPessoa');		
		Jrequest::setVar('tpl', '');
		JRequest::setVar('view', 'detalhes');
		JError::raiseNotice(100, $msg);
		parent::display();
	}

	function addContato() {
		$dados = JRequest::get('post');
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'contato');
		Jrequest::setVar('tpl', 'contato');
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function addEscolaridade() {
		$dados = JRequest::get('post'); //Recebe toda informação que chegou via POST
		$modelo = & $this->getModel('candidato');  //Instancia um objeto da classe candidato
		$modelo->salvar($dados, 'escolaridade'); //Salvar os dados na tabela parametrizada
		Jrequest::setVar('tpl', 'escolaridade'); //setar a variavel tpl
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function addCurso() {
		$dados = JRequest::get('post');
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'curso');
		Jrequest::setVar('tpl', 'curso'); //setar a variavel tpl
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function addIdioma() {
		$dados = JRequest::get('post');
		$dados['descricao'] = $dados['idioma'];
		$dados['nivel'] = $dados['niveisIdioma'];
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'idioma');
		Jrequest::setVar('tpl', 'curso'); //setar a variavel tpl
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function addInformatica() {
		$dados = JRequest::get('post');
		$dados['nivel'] = $dados['niveisInformatica'];
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'informatica');
		Jrequest::setVar('tpl', 'curso'); //setar a variavel tpl
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function addEmpregos() {
		$dados = JRequest::get('post');
		$dados['dataEntrada'] = implode('-', array_reverse(explode('/', $dados['dataEntrada'])));
		$dados['dataSaida'] = implode('-', array_reverse(explode('/', $dados['dataSaida'])));
		$modelo = & $this->getModel('candidato');
		$modelo->salvar($dados, 'emprego');
		Jrequest::setVar('tpl', 'emprego'); //setar a variavel tpl
		JRequest::setVar('view', 'candidato');
		parent::display();
	}

	function apagarPessoa() {
		$idPessoa = JRequest::getVar("idPessoa");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($idPessoa, "pessoa");
		$modelo->apagarUser($idPessoa);
		JRequest::setVar('view', 'gerenciador');
		JRequest::setVar('tpl', "gerenciador");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	
	public function apagarContato(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "contato");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "contato");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	public function apagarEscolaridade(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "escolaridade");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "escolaridade");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	public function apagarCurso(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "curso");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "curso");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	public function apagarIdioma(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "idioma");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "curso");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	public function apagarInformatica(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "informatica");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "curso");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	public function apagarEmprego(){
		$id = JRequest::getVar("id");
		$modelo = & $this->getModel("candidato");
		$modelo->apagar($id, "emprego");
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', "emprego");
		JError::raiseNotice(100, "Registro removido com sucesso.");
		parent::display();
	}
	
	function voltarDados() {
		$botao = JRequest::getVar('botao');
		$dados = JRequest::get('post');
		$view = JRequest::getVar('view');
		$tpl = JRequest::getVar('tplAnterior');
		JRequest::setVar('view', 'candidato');
		JRequest::setVar('tpl', $tpl);
		parent::display();
	}

	function salvarAlteracao() {
		$dados = JRequest::get('post');
		$arquivo = JRequest::getVar('arquivo', null, 'FILES');
		$dados['dataNascimento'] = implode('-', array_reverse(explode('/', $dados['dataNascimento'])));
		$dados['dataEmissao'] = implode('-', array_reverse(explode('/', $dados['dataEmissao'])));
		$dados['dataEmissao'] = implode('-', array_reverse(explode('/', $dados['dataEmissao'])));
		$modelo = & $this->getModel('candidato');
		if ($dados['tabela'] != null) {
			if (count($modelo->_errors) == 0) {
				if ($arquivo != null)
					$dados['arquivo'] = $modelo->gravaArquivo($arquivo, $dados['username']);
				if (count($modelo->_errors) == 0) {
					$resultado = $modelo->salvar($dados, $dados['tabela']);
					if (count($modelo->_errors) == 0) {
						$msg = "Atualização realizada com sucesso";
						JRequest::setVar('view', 'detalhes');
						if ($dados["tabela"] == "pessoa")
							JRequest::setVar('idPessoa' , $resultado->id);
						elseif($dados["tabela"] != "pessoa")
							JRequest::setVar('idPessoa', $resultado->idPessoa);
						JError::raiseNotice(100, $msg);
						parent::display();
					}
				}
			}
		}
		if($dados["tabela"] == null && $dados["idPessoa"] > 0)
		{
			$msg = "Atualização realizada com sucesso";
			JRequest::setVar('view', 'detalhes');
			JRequest::setVar('idPessoa' , $dados["idPessoa"]);
			JError::raiseNotice(100, $msg);
			parent::display();
		}
		if(count($modelo->_errors) > 0){
			$tpl = JRequest::getVar("tplAtual");
			$botao = JRequest::getVar("botao",null);
			JError::raiseWarning(100, 'ERRO: ' . $modelo->getError());
			JRequest::setVar('dados', $dados);
			JRequest::setVar("botao", $botao);
			Jrequest::setVar('tpl', $tpl);
			JRequest::setVar('view', 'candidato');
			parent::display();
		}
	}
}

?>
